Multi-spectral rendering for synthetics

ABSTRACT

Systems and methods are disclosed for leveraging rendering engines to perform multi-spectral rendering by reusing the color channels for additional spectral bands. A digital asset represented by a three dimensional (3D) mesh and a material reference pointer may be rendered using a first material spectral band data set and additionally rendered using a second material spectral band data set, and the results combined to create a multi-spectral rendering. The multi-spectral rendering may then be used as part of a synthetics service or operation. By abstracting the material properties, a material translator is able to return a banded material data set from among a plurality of spectral band sets, and asset material information may advantageously be managed apart from managing each asset individually.

CROSS-REFERENCE TO RELATED APPLICATION

This non-provisional utility application is a continuation of and claimspriority to U.S. patent application Ser. No. 16/134,958, entitled“MULTI-SPECTRAL RENDERING FOR SYNTHETICS,” and filed on Sep. 18, 2018,the disclosure of which is incorporated herein by reference in itsentirety.

BACKGROUND

Synthetics operations and services may have a use case formulti-spectral rendering of assets, across the electromagnetic (EM)spectrum. For example, a synthetics service may be tasked with renderingan asset beyond merely visible red, green, and blue (RGB) colorcomponents, but also in infrared (IR) bands, ultraviolet (UV) bands, andalternative visible light colors. Physically based rendering (PBR)refers to the concept of using realistic shading or lighting modelsalong with measured surface values to accurately represent real-worldmaterials, based on the physical properties of objects, such as variousspectral reflectivity values.

High quality rendering engines exist, but are unfortunately constrainedto three colors, for example RGB. Creating a new rendering enginecapable of rendering additional color and EM spectral bands (e.g., IRand UV) may be a resource-intensive endeavor. Additionally, some artistsproducing three dimensional (3D) assets may create the assets as acombination of a 3D mesh and an image, used for texel mapping, ratherthan specifying the material and the material's spectral properties(outside the visible region of the light spectrum). This may hamper theability to create a multi-spectral rendering of the asset outside theRGB color space.

SUMMARY

The disclosed examples are described in detail below with reference tothe accompanying drawing figures listed below. The following summary isprovided to illustrate some examples disclosed herein. It is not meant,however, to limit all examples to any particular configuration orsequence of operations.

Some aspects and examples disclosed herein are directed tomulti-spectral rendering by: receiving a selection of at least one assetfor a simulation; receiving a spectrum selection for the simulation;receiving a mesh and a material pointer for the at least one asset;identifying a first spectral band selection within the spectrumselection for the simulation; based at least on the material pointer andthe first spectral band selection, receiving a first banded materialdata set from among a plurality of spectral band sets, wherein theplurality of spectral band sets comprises the first banded material dataset and a second banded material data set; and rendering the at leastone asset according to the mesh and first banded material data set.

BRIEF DESCRIPTION OF THE DRAWINGS

The disclosed examples are described in detail below with reference tothe accompanying drawing figures listed below:

FIG. 1 illustrates an exemplary multi-spectral rendering arrangement;

FIG. 2 illustrates further detail for an aspect of the multi-spectralrendering arrangement of FIG. 1;

FIG. 3 illustrates further detail for another aspect of themulti-spectral rendering arrangement of FIG. 1;

FIG. 4 illustrates further detail for another aspect of themulti-spectral rendering arrangement of FIG. 1;

FIG. 5 illustrates further detail for another aspect of themulti-spectral rendering arrangement of FIG. 1;

FIG. 6 is a flow chart illustrating exemplary operations involved inmulti-spectral rendering that may be used with the arrangement of FIG.1;

FIG. 7 is another flow chart illustrating exemplary operations involvedin multi-spectral rendering that may be used with the arrangement ofFIG. 1;

FIG. 8 illustrates a scanner arrangement for generating material libraryinformation that may be used in conjunction with the arrangement of FIG.1;

FIG. 9 is a flow chart illustrating exemplary operations involved ingenerating material library information that may be used with thescanner arrangement of FIG. 8;

FIG. 10 is a block diagram of an architecture for creating syntheticimagery, that may be used with some of the various examples disclosedherein;

FIG. 11 is an exemplary block diagram illustrating an operatingenvironment for a computing device suitable for implementing variousaspects of the disclosure; and

FIG. 12 is a block diagram of an example cloud-computing infrastructuresuitable for implementing some of the various examples disclosed herein.

Corresponding reference characters indicate corresponding partsthroughout the drawings.

DETAILED DESCRIPTION

The various embodiments will be described in detail with reference tothe accompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.References made throughout this disclosure relating to specific examplesand implementations are provided solely for illustrative purposes but,unless indicated to the contrary, are not meant to limit all examples.

Synthetics operations and services (for example, synthetics services1212 of FIG. 12) may have a use case for multi-spectral rendering ofassets, across the electromagnetic (EM) spectrum. For example, asynthetics service may be tasked with rendering an asset beyond merelyvisible red, green, and blue (RGB) color components, but also ininfrared (IR) bands, ultraviolet (UV) bands, and alternative visiblelight colors. Physically based rendering (PBR) refers to the concept ofusing realistic shading or lighting models along with measured surfacevalues to accurately represent real-world materials, based on thephysical properties of objects, such as various spectral reflectivityvalues.

High quality rendering engines do exist, but are unfortunatelyconstrained to three colors, for example RGB. Creating a new renderingengine capable of rendering additional color and EM spectral bands(e.g., IR and UV) may be a resource-intensive endeavor, andprohibitively expensive in many scenarios. Additionally, some artistsproducing three dimensional (3D) assets may create the assets as acombination of a 3D mesh and an image, used for texel mapping, ratherthan specifying the material and the material's spectral properties.Since a material's spectral properties are not specified with a texelmap, including spectral regions beyond the visible light band, this mayhamper the ability to create a multi-spectral rendering of the assetoutside the visible region of the light spectrum.

Therefore, systems and methods are disclosed for leveraging renderingengines to perform multi-spectral rendering by reusing the colorchannels for additional spectral bands. A digital asset represented by a3D mesh and a material reference pointer may be rendered using a firstmaterial spectral band data set and additionally rendered using a secondmaterial spectral band data set, and the results combined to create amulti-spectral rendering. The multi-spectral rendering may then be usedas part of a synthetics service or operation. By abstracting thematerial properties, a material translator is able to return a bandedmaterial data set from among a plurality of spectral band sets, andasset material information may advantageously be managed apart frommanaging each asset individually.

The disclosed solution may leverage legacy rendering technology toproduce datasets for modeling sensors that capture signal from differentbands of the EM. Each mesh in a 3D object (asset) can have one or morematerials assigned to it, and the proper reflectance for each spectralband is achieved assigning values that are spectrum specific to theproperties of a traditional PBR material definition. Materialsassociated with each asset may be categorized by type, such has “wood”or “metal” and have variations, such as “Visible” or “Infrared.” Thisreflectance information is stored in a material library that may beaccessed in order to change the appearance of an asset procedurally, bychoosing which material type to use, and which band of the spectrum istargeted. A unique ID associated with a specific material variation isintercepted by a material translator that pulls the proper values fromthe material library for rendering.

By abstracting the material properties, a material translator is able toreturn a banded material data set from among a plurality of spectralband sets, and asset material information may advantageously be managedapart from managing each asset individually.

FIG. 1 illustrates an exemplary multi-spectral rendering arrangement100, which may be a portion of a larger an architecture 1000 forcreating synthetic imagery (see FIG. 10). Arrangement 100 includes asimulator component 102, an asset library 130, a material library 150, amaterial translator component 140, and a rendering engine 190. In someexamples, rendering engine 190 may be a legacy rendering engine that canoperate on only 3 color bands, nominally RGB. Simulator component 102 isillustrated as holding multiple data and operational modules, includinga spectrum selection 110, an asset selection 112, a scene specification114, a rendering control 116, and a result compilation 118.

Simulator component 102 is operative to receive a spectrum selectionfrom a user 120 and allocate the spectrum selection among the pluralityof spectral band sets (see, for example, plurality of spectral band sets504 in FIG. 5), if the spectrum selection comprises more than merelyRGB. Asset selection 112 selects an asset from asset library 130,including a mesh 132 from a set of meshes and a material pointer 134associated with mesh 132, from a set of material pointers. An asset is acombination of mesh 132 and material pointer 134 (see FIG. 2). It shouldbe understood that asset library 130 may contain a mesh 132 a materialpointer 134 for each of multiple assets, perhaps numbering in thethousands or more. By abstracting the material properties with apointer, asset material information may be advantageously managed apartfrom managing each asset individually.

Simulator component 102 is additionally operative to control renderingengine 190 with rendering control 116 to render an asset according to aselected mesh and a banded material data set (which is placed in the RGBcolor channel of rendering engine 190). That is, simulator component 102is operative to control rendering engine 190 to render an assetaccording to the mesh and a first banded material data set, and isfurther operative to control rendering engine 190 to additionally renderthe asset according to the mesh and a second banded material data set.In such an example operation, rendering engine 190 renders the assettwice, using different banded material data sets, each iterationoperating as if the banded material data set was RGB color information.Simulator component 102 is further operative to combine, using resultcompilation 118, a result of rendering the at least one asset accordingto the mesh and the first banded material data set with a result ofrendering the at least one asset according to the mesh and the secondbanded material data set into a combined spectrum result. Additionalresults may also be combined, using result compilation 118. Simulatorcomponent 102 may then control a display, such as head mounded display(HMD) 122 to display the results of the simulation to user 120. Itshould be understood, however, that additional types of displays mayalso be used.

For example, a certain simulation scenario may involve the use of 12different specified spectral bands: RGB (three bands), plus three bandsin each of IR, UV, and radio frequency (RF) spectral regions. However,rendering engine 190 can handle only three bands at a time, treatingthese three bands as RGB. However, it is only pixel reflectivityinformation that can be used to represent any other set of threespectral bands. So, spectrum selection 110 allocates the 12 differentbands of the spectrum selection among a plurality of spectral band sets,dividing 12 by three to generate a set of four different renderingevents. Rendering control 116 controls rendering engine 190 to performeach of the four rendering events, with three spectral components ineach rendering event, and then result compilation 118 combines theresults of the four rendering events to produce a combined spectrumresult having results for all 12 different specified spectral bands.User 120 may then view a simulated IR rendering of the asset using HMD122.

In each rendering event, either simulator component 102 or renderingengine 190 retrieves the asset information (mesh 132 and materialpointer 134) from asset library and then attempts retrieve material datafrom material library 150, using material pointer 134. As part of thisretrieval process, material translator component 140 interrogates therequesting component (e.g., simulator component 102 or rendering engine190) regarding the spectral band of interest. The requesting componentthen responds by identifying the current band set 142. Materialtranslator component 140 is then able to either return a pointer to thespecific banded material data set in material library 150, or fetchesthe specific banded material data set from material library 150 andreturns it. Thus, material translator component 140 is operative to,based at least on the material pointer and a first spectral bandselection, indicate a first banded material data set from among aplurality of spectral band sets in material library 150. Each bandedmaterial data set has a unique ID in material library 150. Byabstracting the material properties, first in asset library 130 using amaterial pointer 134, and also in material library 150, materialtranslator component 140 is thus able to return a banded material dataset from among a plurality of spectral band sets.

Material library 150 includes banded material data comprising, for atleast one material, spectral band information for a plurality ofspectral band sets. As illustrated, material library 150 holds material1 information 160, which includes a visible light (VL) banded materialdata set 162, which comprises a first set of visible light spectralbands. In some examples, the first set of visible light spectral bandscomprises red, green, and blue colors of visible light. Material 1information 160 also includes an IR banded material data set 163 thatcomprises one or more IR light spectral bands, and a UV banded materialdata set 164 that comprises one or more UV light spectral bands. Asillustrated, material 1 information 160 also includes a RF bandedmaterial data set 165 that comprises pixel reflectivity data for one ormore RF spectral bands, and a general (X) banded material data set 166.X banded material data set 166 may comprise one or more microwave (MW)spectral bands or a banded material data set comprising a second set ofvisible light spectral bands different than the first set of visiblelight spectral bands. For example, the second set of visible lightspectral bands may include orange, yellow, and purple. Othercombinations of spectral bands may also be used. Material library alsoincludes banded material data sets for additional materials, forexample, material 2 information 170 comprising banded material data sets172 and 176, and material 3 information 180 comprising banded materialdata sets 182 and 186.

FIG. 2 illustrates further detail for an aspect of multi-spectralrendering arrangement 100 of FIG. 1. Specifically, FIG. 2 illustrates anaspect of abstracting asset material data. An asset 202 is representedas comprising mesh 132 and material pointer 134, rather than beingrepresented as an asset 212 comprising mesh 132 and a texel map 234. Therepresentation as asset 202, using material pointer 134, permitsefficient multi-spectral rendering operations.

FIG. 3 illustrates further detail for another aspect of multi-spectralrendering arrangement 100 of FIG. 1. Specifically, FIG. 3 illustratesanother aspect abstracting asset material data. Material pointer 134 isused with current band set 142 to specify banded material data 302.Banded material data 302 can be any of VL banded data set 162, IR bandedmaterial data set 163, UV banded material data set 164, RF bandedmaterial data set 165, and X banded material data set 166, or any othersuitable banded material data. Current band set 142 is selected fromamong a plurality of spectral band sets 504, described further inrelation to FIG. 5. Banded material data 302 contains spectral bandinformation 304, which is a measure of reflectivity of the material (ina given pixel) for a specific frequency (or EM wavelength). Thisinformation may be stored as numeric values, but is represented as aspectral graph having a magnitude axis 306 and a frequency axis 308.Three spectral response curves 310, 312, and 314 are illustrated, torepresent that a particular material may have a unique spectralresponse. The reflectivity of a material in the visible light portion ofthe EM spectrum is what provides an object's color. This same concept,however, carries over to other portions of the EM spectrum, permittingthe reuse of a legacy renderer's RGB color channel for other,non-visible light reflectivity values, such as IR and UV.

FIG. 4 illustrates further detail for another aspect of multi-spectralrendering arrangement 100 of FIG. 1. Specifically, FIG. 4 illustratesoverloading an RGB channel. Any of VL banded data set 162, IR bandedmaterial data set 163, UV banded material data set 164, RF bandedmaterial data set 165, and X banded material data set 166 may berepresented, by a channel overload operation 400, as RGB data, and fedto rendering engine 190 through its RGB channel 402. RGB channel 402represents the color data used for rendering in many legacy renderingengines. Upon completion of the rendering, a band recovery operation 404converts the rendering output result (e.g., RGB image pixels) from RGBchannel 402 to the proper spectral band. In an exemplary operation, bandrecovery operation 404 maps RGB in a rendered image output to thespectrum of the banded material set that was used to overload RGBchannel 402. In this manner, channel overload operation 400 reverses theeffect that material translator component 140 had by substituting bandedmaterial data for RGB data. Band recovery operation 404 includes theoperation of result compilation 118 in unwrapping the various spectralcomponents in the final result.

FIG. 5 illustrates further detail for another aspect of multi-spectralrendering arrangement 100 of FIG. 1. Specifically, FIG. 5 illustratesallocating the spectrum selection among a plurality of spectral bandsets and combining the results of rendering an asset according to themesh and different banded material data sets. Spectrum selection 110,which indicates the spectral components to be used in a simulation, isallocated among a plurality of spectral bands by spectrum allocationoperation 502. In an example of nine bands, spectrum allocationoperation 502 allocates the nine bands into a plurality of spectral bandsets 504. As illustrated, plurality of spectral band sets 504 includesthree spectral bands, Band 1, Band 2, and Band 3. For each of Band 1,Band 2, and Band 3, channel overload operation 400 takes thecorresponding banded material data (e.g., any of VL banded data set 162,IR banded material data set 163, UV banded material data set 164, RFbanded material data set 165, and X banded material data set 166) andfeeds it into rendering engine 190. Band recovery operation 404 thenconverts output RGB colors (from rendering engine 190) to the properspectral components, and they are combined to create a combined spectrumresult 506.

FIG. 6 is a flow chart 600 illustrating exemplary operations involved inmulti-spectral rendering that may be used with the arrangement ofFIG. 1. The operations illustrated in FIG. 6 may be performed by anysuitable processing unit, such as a computing node. Operation 602includes receiving a selection of at least one asset for a simulation,and operation 604 includes receiving a spectrum selection for thesimulation. Operation 606 includes receiving a material pointer for theat least one asset, and operation 608 includes identifying a firstspectral band selection within the spectrum selection for thesimulation. Operation 610 includes, based at least on the materialpointer and the first spectral band selection, receiving a first bandedmaterial data set from among a plurality of spectral band sets, whereinthe plurality of spectral band sets comprises the first banded materialdata set and a second banded material data set. Operation 612 includesrendering the at least one asset according to the mesh and the firstbanded material data set.

FIG. 7 is a flow chart 700 that also illustrates exemplary operationsinvolved in multi-spectral rendering that may be used withmulti-spectral rendering arrangement 100 of FIG. 1. The operationsillustrated in FIG. 7 may be performed by any suitable processing unit,such as a computing node. Flow chart 700 begins by optionally performingthe operations of flow chart 900, described in FIG. 9, in order togenerate an entry into a material library that may be used later, in theoperations of flow chart 700. Operation 702 is a simulation setup for asimulator (e.g., simulator component 102 of FIG. 1) that includesfurther-refined operations 704-710. Operation 704 includes receiving ascene specification, such as a location and camera angle. Operation 706includes receiving a selection of at least one asset for a simulation,for example an asset in asset library (of FIG. 1). Operation 708includes a receiving a spectrum selection for the simulation. A user maywish to perform a multi-spectral rendering operation for a syntheticsservice or simulation. The spectrum selection may include a first set ofvisible light spectral bands, such as red, green, and blue colors ofvisible light, and a second set of spectral bands, which may bedifferent colors of visible light, or IR, UV, or another band.

Operation 710 includes receiving a mesh and a material pointer,associated with the mesh, for the at least one asset. In decisionoperation 712, the simulator determines whether the spectrum selectioncorresponds to a single banded material data set in the materiallibrary. If not, then operation 714 includes allocating the spectrumselection among a plurality of spectral band sets, the plurality ofspectral band sets including a first spectral band set and a secondspectral band set corresponding to a banded material data set in thematerial library. Operation 716 includes identifying a current spectralband selection within the spectrum selection for the simulation. Thecurrent spectral band selection may iterate among the first spectralband selection, the second spectral band selection, and as many otherspectral band selections as are needed to cover entire specifiedspectrum for the simulation.

Operation 718 initiates (e.g., controls) a rendering operation, forexample by starting rendering engine 190 (of FIG. 1). The renderingengine receives the asset mesh in operation 720 and receives thematerial pointer for the asset in operation 722. Operation 724 involvesthe simulator or rendering engine requesting material properties for theat least one asset. A material translator, for example materialtranslator component 140 (of FIG. 1) responds by requestingidentification of the current spectral band set, in operation 726. Inoperation 728, the simulator or rendering engine indicates the currentspectral band set, which will be within the spectrum selection for thesimulation. In operation 730, based at least on the material pointer anda first spectral band selection, the material translator indicates afirst banded material data set of the plurality of spectral band sets.The material translator may return the banded material data set for thecurrent spectral band set or may instead return a pointer to the datawithin a material library. The banded material data set includesspectral band information (for example, spectral band information 304 ofFIG. 3) for the material for the current spectral band, for example, forboth a first banded material data set and a second banded material dataset.

In operation 732, the simulator or rendering engine then receives thespectral band information for the material for the current spectralband. That is, operation 732 includes, based at least on the materialpointer and the current spectral band selection, receiving a currentbanded material data set from among a plurality of spectral band sets,wherein the plurality of spectral band sets comprises the first bandedmaterial data set and the second banded material data set, amongpossibly others. The first banded material data set may comprise a firstset of visible light spectral bands, possibly red, green, and bluecolors of visible light. The second banded material data set maycomprise a second set of visible light spectral bands different than thefirst set of visible light spectral bands, for example, orange andpurple. Alternatively, the second banded material data set may comprisea set of spectral bands selected from the set consisting of IR, UV, RF,MW, and others.

Operation 734 includes rendering the at least one asset according to themesh and the current banded material data set. In some examples, thismay include overloading the RGB channel of the renderer with thespectral band information of the current banded material data set. Insome examples, rendering the at least one asset according to the meshand the current banded material data set may include using uv mapping tomap pixel reflectivity values to the 3D mesh positions. In someexamples, rendering the at least one asset according to the mesh and thecurrent banded material data set may include using triplanar projectionto map pixel reflectivity values to the 3D mesh positions.

Operation 736 iterates for any additional spectral band sets, if morethan one banded material data set is used. Operation 738 combinesmultiple results, if there is more than one, and includes the operationsdescribed for band recovery operation 404 (of FIG. 4). For example,operation 738 may include combining a result of rendering the at leastone asset according to the mesh and the first banded material data setwith a result of rendering the at least one asset according to the meshand the second banded material data set into a combined spectrum result.Operation 740 includes controlling a display to render the combinedspectrum result, for example HMD 122 (of FIG. 1).

FIG. 8 illustrates a scanner arrangement 800 for generating materiallibrary information that may be used in conjunction with multi-spectralrendering arrangement 100 of FIG. 1. For example, scanner arrangement800, or a similar arrangement, may provide measurement data for materiallibrary 150 (see also FIG. 1). Scanner arrangement 800 includes ascanner 802, which may be used to scan a material sample 804. A spectracontrol component 806 specifies a set of bands as spectral band setspecification 808, for scanning material sample 804. This producesmaterial scan data 810 which is then placed into material library 150.Different scans may have different spectral bands, which may be withinthe visible light spectrum, or include components, such as IR and UV,that are outside the visible light spectrum. Different materials, forexample different types of wood, fabric, and construction materials(e.g., plastic and metal) may be scanned and used to populate materiallibrary 150.

FIG. 9 is a flow chart 900 illustrating exemplary operations involved ingenerating material library information that may be used with thescanner arrangement of FIG. 8. Flow chart 900 of FIG. 9 is describedwith further reference to FIG. 8. The operations illustrated in FIG. 9may be performed by any suitable processing unit, such as a computingnode. The operations indicated in flow chart 900 may be used topopulate, enhance, update, or otherwise improve material library 150 (ofFIGS. 1 and 8).

Operation 902 includes receiving a sample 804 of at least one materialfor spectral property scanning. The material sample 804 is placed intoscanner 802, and operation 904 includes receiving, possibly via spectralcontrol component 806, a spectral band set specification 808 forscanning the sample of the at least one material. Operation 906 includesscanning the material sample 804 according to the specified spectralband set 808 to produce material scan data 810. Operation 908 includesgenerating an entry into material library 150, wherein material scandata 810 forms at least a portion of spectral band information 304 (ofFIG. 3) for the at least one material. Operation 910 then iterates forthe next spectral band or set of bands, and operation 912 iterates foranother material sample.

ADDITIONAL EXAMPLES

Some examples are directed to a system for multi-spectral rendering thatcomprises: a simulator component; a material library including bandedmaterial data comprising, for at least one material, spectral bandinformation for a plurality of spectral band sets; an asset libraryincluding, for at least one asset, a mesh and a material pointerassociated with the mesh and indicating the at least one material in thematerial library; a rendering engine; and a material translatorcomponent operative to, based at least on the material pointer and afirst spectral band selection, indicate a first banded material data setof the plurality of spectral band sets, and wherein the simulatorcomponent is operative to control the rendering engine to render the atleast one asset according to the mesh and the first banded material dataset.

Some examples are directed to a method of multi-spectral rendering thatcomprises: receiving a selection of at least one asset for a simulation;receiving a spectrum selection for the simulation; receiving a mesh anda material pointer for the at least one asset; identifying a firstspectral band selection within the spectrum selection for thesimulation; based at least on the material pointer and the firstspectral band selection, receiving a first banded material data set fromamong a plurality of spectral band sets, wherein the plurality ofspectral band sets comprises the first banded material data set and asecond banded material data set; and rendering the at least one assetaccording to the mesh and first banded material data set.

Some examples are directed to one or more computer storage deviceshaving computer-executable instructions stored thereon formulti-spectral rendering, which, on execution by a computer, cause thecomputer to perform operations comprising: receiving a selection of atleast one asset for a simulation; receiving a spectrum selection for thesimulation; receiving a material pointer for the at least one asset;allocating the spectrum selection among a plurality of spectral bandsets, the plurality of spectral band sets including a first spectralband set and a second spectral band set; based at least on the materialpointer and the first spectral band selection corresponding to the firstspectral band set, receiving the first banded material data set;rendering the at least one asset according to the mesh and the firstbanded material data set; based at least on the material pointer and thesecond spectral band selection corresponding to the second spectral bandset, receiving the second banded material data set; rendering the atleast one asset according to the mesh and the second banded materialdata set; combining a result of rendering the at least one assetaccording to the mesh and the first banded material data set with aresult of rendering the at least one asset according to the mesh and thesecond banded material data set into a combined spectrum result; andcontrolling a display to render the combined spectrum result.

Alternatively or in addition to the other examples described herein,some examples include any combination of the following: the first bandedmaterial data set comprises a first set of visible light spectral bands;the first set of visible light spectral bands comprises red, green, andblue colors of visible light; a second banded material data set of theplurality of spectral band sets comprises a second set of visible lightspectral bands different than the first set of visible light spectralbands; a second banded material data set of the plurality of spectralband sets comprises a set of spectral bands selected from the setconsisting of IR, UV, RF, and MW; the simulator component is furtheroperative to control the rendering engine to render the at least oneasset according to the mesh and a second banded material data set of theplurality of spectral band sets; the simulator component is furtheroperative to combine a result of rendering the at least one assetaccording to the mesh and the first banded material data set with aresult of rendering the at least one asset according to the mesh and thesecond banded material data set into a combined spectrum result; thesimulator component is further operative to receive a spectrum selectionand allocate the spectrum selection among the plurality of spectral bandsets; a scanner arrangement operative to receive a sample of the atleast one material; receive a spectral band specification for scanningthe sample of the at least one material; scan the material sampleaccording to the spectral band specification to produce material scandata; and generate an entry into the material library, wherein thematerial scan data forms at least a portion of the spectral bandinformation for the at least one material; allocating the spectrumselection among a plurality of spectral band sets, the plurality ofspectral band sets including a first spectral band set and a secondspectral band set, wherein the first spectral band selection correspondsto the first spectral band set; based at least on the material pointerand the second spectral band selection corresponding to the secondspectral band set, receiving the second banded material data set;rendering the at least one asset according to the mesh and the secondbanded material data set; combining a result of rendering the at leastone asset according to the mesh and the first banded material data setwith a result of rendering the at least one asset according to the meshand the second banded material data set into a combined spectrum result;receiving a sample of at least one material; receiving a spectral bandset specification for scanning the sample of the at least one material;scanning the material sample according to the specified spectral bandset to produce material scan data; and generating an entry into amaterial library, wherein the material scan data forms at least aportion of spectral band information for the at least one material; andthe banded material data set comprises at least a portion of thespectral band information.

While the aspects of the disclosure have been described in terms ofvarious examples with their associated operations, a person skilled inthe art would appreciate that a combination of operations from anynumber of different examples is also within scope of the aspects of thedisclosure.

Example Operating Environment

FIG. 10 is an illustration of architecture 1000 for creating syntheticimagery, according to some of the various examples disclosed herein. Forexample, architecture 1000 may create synthetic imagery, possibly aspart of a synthetics service 1212 (of FIG. 12) using multi-spectralrendering arrangement 100, scanner arrangement 800, and/or theoperations of any of flow charts 600, 700, and 900. In architecture1000, several inputs, including an artist workflow 1002, an assetmanagement 1004, and other workflows (a scripted workflow 1006 a, aguided workflow 1006 b, and a custom workflow 1006 c) interface via asynthetics API 1008 to a synthetics service 1020. Synthetics service1020 (synthetic simulation service) has multiple components or modules,including a renderer 1010, a sensor modeler 1012, a motion module 1014,a scene generation module 1016, and a scheduler 1018. Renderer 1010 maybe similar in function to rendering engine 190 (of FIG. 1), and someexamples of renderer 1010 may comprise rendering engine 190. Externalfunctionality is illustrated as a physics service 1022 and otherexternal support 1024, which may include off-loaded renderingcomputations. Synthetics service 1020 includes at least these main corecapabilities:

Asset ingestion, which includes artist workflows and, if a user desiresto upload their own assets, synthetics service 1020 can ingest the userdata and verify compatibility with the simulation system.

Sensors/Devices plugin system so a user can implement custom sensors anddevice logics.

Synthetic simulation setup and environment manipulation for assemblingthe input to the simulation. A user can use assets in storage medium1040 to create and manipulate virtual environments, add devices orsensors in the environment, and define device/sensor movements.

Synthetic simulation enabling a user to run the experiment that has beenset up, monitor the progress, and collect the results.

The generated synthetic imagery, scene data and other associated datamay then be archived in a storage medium 1040 for use in the describedvirtual experimentation. Storage medium 1040 may be in a cloudenvironment or may connect to a cloud storage service (e.g., storage1242 of FIG. 12). As illustrated, various data sets are stored,including the scene data 1030, device data 1032, motion data 1034, assetdata 1036, and results 1038. It should be understood that differentfunctionalities may be internal or external services, and that FIG. 10is only used for illustrative purposes. Together the variousfunctionalities are able to intake virtual objects (assets), lightingmodels, orchestrated motion, camera and other sensor positions, torender synthetic (virtual) scene imagery.

FIG. 11 is a block diagram of an example computing device 1100 forimplementing aspects disclosed herein, and is designated generally ascomputing device 1100. Computing device 1100 is one example of asuitable computing environment and is not intended to suggest anylimitation as to the scope of use or functionality of the invention.Neither should the computing device 1100 be interpreted as having anydependency or requirement relating to any one or combination ofcomponents/modules illustrated. Some examples of synthetics service 1212and/or the operations of any of flow charts 600, 700, and 900, may beimplemented on computing device 1100.

The examples and embodiments disclosed herein may be described in thegeneral context of computer code or machine-useable instructions,including computer-executable instructions such as program components,being executed by a computer or other machine, such as a personal dataassistant or other handheld device. Generally, program componentsincluding routines, programs, objects, components, data structures, andthe like, refer to code that performs particular tasks, or implementparticular abstract data types. The disclosed examples may be practicedin a variety of system configurations, including personal computers,laptops, smart phones, mobile tablets, hand-held devices, consumerelectronics, specialty computing devices, etc. The disclosed examplesmay also be practiced in distributed computing environments, where tasksare performed by remote-processing devices that are linked through acommunications network. For example, a distributed computing environmentmay host cloud synthetics services. Some embodiments of syntheticsservices may provide synthetic 3D environments as well as rendering asurface in a synthetic scene.

Computing device 1100 includes a bus 1110 that directly or indirectlycouples the following devices: memory 1112, one or more processors 1114,one or more presentation components 1116, input/output (I/O) ports 1118,I/O components 1120, a power supply 1122, and a network component 1124.Computing device 1100 should not be interpreted as having any dependencyor requirement related to any single component or combination ofcomponents illustrated therein. While computing device 1100 is depictedas a seemingly single device, multiple computing devices 1100 may worktogether and share the depicted device resources. For example, memory1112 may be distributed across multiple devices, processor(s) 1114 mayprovide housed on different devices, and so on.

Bus 1110 represents what may be one or more busses (such as an addressbus, data bus, or a combination thereof). Although the various blocks ofFIG. 11 are shown with lines for the sake of clarity, in reality,delineating various components is not so clear, and metaphorically, thelines would more accurately be grey and fuzzy. For example, one mayconsider a presentation component such as a display device to be an I/Ocomponent. Also, processors have memory. Such is the nature of the art,and the diagram of FIG. 11 is merely illustrative of an exemplarycomputing device that can be used in connection with one or moreembodiments of the present invention. Distinction is not made betweensuch categories as “workstation,” “server,” “laptop,” “hand-helddevice,” etc., as all are contemplated within the scope of FIG. 11 andthe references herein to a “computing device.”

Memory 1112 may include any of the computer-readable media discussedherein. Memory 1112 may be used to store and access instructionsconfigured to carry out the various operations disclosed herein. In someexamples, memory 1112 includes computer storage media in the form ofvolatile and/or nonvolatile memory, removable or non-removable memory,data disks in virtual environments, or a combination thereof.

Processor(s) 1114 may include any quantity of processing units that readdata from various entities, such as memory 1112 or I/O components 1120.Specifically, processor(s) 1114 are programmed to executecomputer-executable instructions for implementing aspects of thedisclosure. The instructions may be performed by the processor, bymultiple processors within the computing device 1100, or by a processorexternal to the client computing device 1100. In some examples, theprocessor(s) 1114 are programmed to execute instructions such as thoseillustrated in the flowcharts discussed below and depicted in theaccompanying drawings. Moreover, in some examples, the processor(s) 1114represent an implementation of analog techniques to perform theoperations described herein. For example, the operations may beperformed by an analog client computing device 1100 and/or a digitalclient computing device 1100.

Presentation component(s) 1116 present data indications to a user orother device. Exemplary presentation components include a displaydevice, speaker, printing component, vibrating component, etc. Oneskilled in the art will understand and appreciate that computer data maybe presented in a number of ways, such as visually in a graphical userinterface (GUI), audibly through speakers, wirelessly between computingdevices 1100, across a wired connection, or in other ways.

Ports 1118 allow computing device 1100 to be logically coupled to otherdevices including I/O components 1120, some of which may be built in.Example I/O components 1120 include, for example but without limitation,a microphone, keyboard, mouse, joystick, game pad, satellite dish,scanner, printer, wireless device, etc.

In some examples, the network component 1124 includes a networkinterface card and/or computer-executable instructions (e.g., a driver)for operating the network interface card. Communication between thecomputing device 1100 and other devices may occur using any protocol ormechanism over any wired or wireless connection. In some examples, thenetwork component 1124 is operable to communicate data over public,private, or hybrid (public and private) using a transfer protocol,between devices wirelessly using short range communication technologies(e.g., near-field communication (NFC), BLUETOOTH® brandedcommunications, or the like), or a combination thereof.

Although described in connection with an example computing device 1100,examples of the disclosure are capable of implementation with numerousother general-purpose or special-purpose computing system environments,configurations, or devices. Examples of well-known computing systems,environments, and/or configurations that may be suitable for use withaspects of the disclosure include, but are not limited to, smart phones,mobile tablets, mobile computing devices, personal computers, servercomputers, hand-held or laptop devices, multiprocessor systems, gamingconsoles, microprocessor-based systems, set top boxes, programmableconsumer electronics, mobile telephones, mobile computing and/orcommunication devices in wearable or accessory form factors (e.g.,watches, glasses, headsets, or earphones), network PCs, minicomputers,mainframe computers, distributed computing environments that include anyof the above systems or devices, virtual reality (VR) devices,holographic device, and the like. Such systems or devices may acceptinput from the user in any way, including from input devices such as akeyboard or pointing device, via gesture input, proximity input (such asby hovering), and/or via voice input.

Turning now to FIG. 12, an exemplary block diagram illustrates acloud-computing environment for providing a synthetics service.Architecture 1200 illustrates an exemplary cloud-computinginfrastructure, suitable for use in implementing aspects of thisdisclosure. Architecture 1200 should not be interpreted as having anydependency or requirement related to any single component or combinationof components illustrated therein. In addition, any number of nodes,virtual machines, data centers, role instances, or combinations thereofmay be employed to achieve the desired functionality within the scope ofembodiments of the present disclosure.

The distributed computing environment of FIG. 12 includes a publicnetwork 1202, a private network 1204, and a dedicated network 1206.Public network 1202 may be a public cloud-based network of computingresources, for example. Private network 1204 may be a private enterprisenetwork or private cloud-based network of computing resources. Anddedicated network 1206 may be a third-party network or dedicatedcloud-based network of computing resources. In some examples, privatenetwork 1204 may host a customer data center 1210, and dedicated network1206 may each host a cloud synthetics service 1212, which was introducedin the description of FIG. 10.

Hybrid cloud 1208 may include any combination of public network 1202,private network 1204, and dedicated network 1206. For example, dedicatednetwork 1206 may be optional, with hybrid cloud 1208 comprised of publicnetwork 1202 and private network 1204. Along these lines, some customersmay opt to only host a portion of their customer data center 1210 in thepublic network 1202 and/or dedicated network 1206, retaining some of thecustomers' data or hosting of customer services in the private network1204. For example, a customer that manages healthcare data or stockbrokerage accounts may elect or be required to maintain various controlsover the dissemination of healthcare or account data stored in its datacenter or the applications processing such data (e.g., software forreading radiology scans, trading stocks, etc.). Myriad other scenariosexist whereby customers may desire or need to keep certain portions ofdata centers under the customers' own management. Thus, in someexamples, customer data centers may use a hybrid cloud 1208 in whichsome data storage and processing is performed in the public network 1202while other data storage and processing is performed in the dedicatednetwork 1206.

Public network 1202 may include data centers configured to host andsupport operations, including tasks of a distributed application,according to the fabric controller 1218. It will be understood andappreciated that data center 1214 and data center 1216 shown in FIG. 12are merely examples of suitable implementations for accommodating one ormore distributed applications, and are not intended to suggest anylimitation as to the scope of use or functionality of examples disclosedherein. Neither should data center 1214 and data center 1216 beinterpreted as having any dependency or requirement related to anysingle resource, combination of resources, combination of servers (e.g.,servers 1220 and 1224) combination of nodes (e.g., nodes 1232 and 1234),or a set of application programming interfaces (APIs) to access theresources, servers, and/or nodes.

Data center 1214 illustrates a data center comprising a plurality ofservers, such as servers 1220 and 1224. A fabric controller 1218 isresponsible for automatically managing the servers 1220 and 1224 anddistributing tasks and other resources within the data center 1214. Byway of example, the fabric controller 1218 may rely on a service model(e.g., designed by a customer that owns the distributed application) toprovide guidance on how, where, and when to configure server 1222 andhow, where, and when to place application 1226 and application 1228thereon. One or more role instances of a distributed application may beplaced on one or more of the servers 1220 and 1224 of data center 1214,where the one or more role instances may represent the portions ofsoftware, component programs, or instances of roles that participate inthe distributed application. In other examples, one or more of the roleinstances may represent stored data that are accessible to thedistributed application.

Data center 1216 illustrates a data center comprising a plurality ofnodes, such as node 1232 and node 1234. One or more virtual machines mayrun on nodes of data center 1216, such as virtual machine 1236 of node1234 for example. Although FIG. 12 depicts a single virtual node on asingle node of data center 1216, any number of virtual nodes may beimplemented on any number of nodes of the data center in accordance withillustrative embodiments of the disclosure. Generally, virtual machine1236 is allocated to role instances of a distributed application, orservice application, based on demands (e.g., amount of processing load)placed on the distributed application. As used herein, the phrase“virtual machine” is not meant to be limiting, and may refer to anysoftware, application, operating system, or program that is executed bya processing unit to underlie the functionality of the role instancesallocated thereto. Further, the virtual machine(s) 1236 may includeprocessing capacity, storage locations, and other assets within the datacenter 1216 to properly support the allocated role instances.

In operation, the virtual machines are dynamically assigned resources ona first node and second node of the data center, and endpoints (e.g.,the role instances) are dynamically placed on the virtual machines tosatisfy the current processing load. In one instance, a fabriccontroller 1230 is responsible for automatically managing the virtualmachines running on the nodes of data center 1216 and for placing therole instances and other resources (e.g., software components) withinthe data center 1216. By way of example, the fabric controller 1230 mayrely on a service model (e.g., designed by a customer that owns theservice application) to provide guidance on how, where, and when toconfigure the virtual machines, such as virtual machine 1236, and how,where, and when to place the role instances thereon.

As described above, the virtual machines may be dynamically establishedand configured within one or more nodes of a data center. As illustratedherein, node 1232 and node 1234 may be any form of computing devices,such as, for example, a personal computer, a desktop computer, a laptopcomputer, a mobile device, a consumer electronic device, a server, thecomputing device 1100 of FIG. 11, and the like. In one instance, thenodes 1232 and 1234 host and support the operations of the virtualmachine(s) 1236, while simultaneously hosting other virtual machinescarved out for supporting other tenants of the data center 1216, such asinternal services 1238, hosted services 1240, and storage 1242. Often,the role instances may include endpoints of distinct serviceapplications owned by different customers.

Typically, each of the nodes include, or is linked to, some form of acomputing unit (e.g., central processing unit, microprocessor, etc.) tosupport operations of the component(s) running thereon. As utilizedherein, the phrase “computing unit” generally refers to a dedicatedcomputing device with processing power and storage memory, whichsupports operating software that underlies the execution of software,applications, and computer programs thereon. In one instance, thecomputing unit is configured with tangible hardware elements, ormachines, that are integral, or operably coupled, to the nodes to enableeach device to perform a variety of processes and operations. In anotherinstance, the computing unit may encompass a processor (not shown)coupled to the computer-readable medium (e.g., computer storage mediaand communication media) accommodated by each of the nodes.

The role of instances that reside on the nodes may be to supportoperation of service applications, and thus they may be interconnectedvia APIs. In one instance, one or more of these interconnections may beestablished via a network cloud, such as public network 1202. Thenetwork cloud serves to interconnect resources, such as the roleinstances, which may be distributed across various physical hosts, suchas nodes 1232 and 1234. In addition, the network cloud facilitatescommunication over channels connecting the role instances of the serviceapplications running in the data center 1216. By way of example, thenetwork cloud may include, without limitation, one or more communicationnetworks, such as local area networks (LANs) and/or wide area networks(WANs). Such communication networks are commonplace in offices,enterprise-wide computer networks, intranets, and the Internet, andtherefore need not be discussed at length herein.

Examples of the disclosure may be described in the general context ofcomputer-executable instructions, such as program modules, executed byone or more computers or other devices in software, firmware, hardware,or a combination thereof. The computer-executable instructions may beorganized into one or more computer-executable components or modules.Generally, program modules include, but are not limited to, routines,programs, objects, components, and data structures that performparticular tasks or implement particular abstract data types. Aspects ofthe disclosure may be implemented with any number and organization ofsuch components or modules. For example, aspects of the disclosure arenot limited to the specific computer-executable instructions or thespecific components or modules illustrated in the figures and describedherein. Other examples of the disclosure may include differentcomputer-executable instructions or components having more or lessfunctionality than illustrated and described herein. In examplesinvolving a general-purpose computer, aspects of the disclosuretransform the general-purpose computer into a special-purpose computingdevice when configured to execute the instructions described herein.

By way of example and not limitation, computer readable media comprisecomputer storage media and communication media. Computer storage mediainclude volatile and nonvolatile, removable and non-removable memoryimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules, orthe like. Computer storage media are tangible and mutually exclusive tocommunication media. Computer storage media are implemented in hardwareand exclude carrier waves and propagated signals. Computer storage mediafor purposes of this disclosure are not signals per se. Exemplarycomputer storage media include hard disks, flash drives, solid-statememory, phase change random-access memory (PRAM), static random-accessmemory (SRAM), dynamic random-access memory (DRAM), other types ofrandom-access memory (RAM), read-only memory (ROM), electricallyerasable programmable read-only memory (EEPROM), flash memory or othermemory technology, compact disk read-only memory (CD-ROM), digitalversatile disks (DVD) or other optical storage, magnetic cassettes,magnetic tape, magnetic disk storage or other magnetic storage devices,or any other non-transmission medium that can be used to storeinformation for access by a computing device. In contrast, communicationmedia typically embody computer readable instructions, data structures,program modules, or the like in a modulated data signal such as acarrier wave or other transport mechanism and include any informationdelivery media.

The order of execution or performance of the operations in examples ofthe disclosure illustrated and described herein is not essential, andmay be performed in different sequential manners in various examples.For example, it is contemplated that executing or performing aparticular operation before, contemporaneously with, or after anotheroperation is within the scope of aspects of the disclosure.

When introducing elements of aspects of the disclosure or the examplesthereof, the articles “a,” “an,” “the,” and “said” are intended to meanthat there are one or more of the elements. The terms “comprising,”“including,” and “having” are intended to be inclusive and mean thatthere may be additional elements other than the listed elements. Theterm “exemplary” is intended to mean “an example of.” The phrase “one ormore of the following: A, B, and C” means “at least one of A and/or atleast one of B and/or at least one of C.”

Having described aspects of the disclosure in detail, it will beapparent that modifications and variations are possible withoutdeparting from the scope of aspects of the disclosure as defined in theappended claims. As various changes could be made in the aboveconstructions, products, and methods without departing from the scope ofaspects of the disclosure, it is intended that all matter contained inthe above description and shown in the accompanying drawings shall beinterpreted as illustrative and not in a limiting sense.

What is claimed is:
 1. A system for multi-spectral rendering, the systemcomprising: a simulator component; a material library including bandedmaterial data comprising, for at least one material, spectral bandinformation for a plurality of spectral band sets; an asset libraryincluding, for at least one asset, a three-dimensional (3D) mesh and amaterial pointer associated with the mesh and indicating the at leastone material in the material library, wherein the at least one asset isstored in a storage medium and managed separately from the bandedmaterial data; a material translator component operative to, based atleast on the material pointer and a first spectral band selection,obtain a first banded material data set of the plurality of spectralband sets in the material library; a rendering engine, wherein thesimulator component is operative to control the rendering engine torender the at least one asset according to the 3D mesh and the firstbanded material data set; a band recovery operation operative to converta result of rendering the at least one asset according to the 3D meshand the first banded material data into a first spectrum result; and anasset management component operative to generate a new material pointer,add the new material pointer to a set of material pointers in the assetlibrary, and update the at least one asset with the new material pointerfrom the set of material pointers, wherein the new material pointerpoints to a portion of the spectral band information.
 2. The system ofclaim 1 wherein the first banded material data set comprises a set ofspectral bands selected from a set consisting of: infrared (IR),ultraviolet (UV), radio frequency (RF), microwave (MW), a first set ofvisible light spectral bands, and a second set of visible light spectralbands different than the first set of visible light spectral bands. 3.The system of claim 2 wherein the first set of visible light spectralbands comprises red, green, and blue colors of visible light.
 4. Thesystem of claim 1 wherein the material translator component is furtheroperative to, based at least on the material pointer and a secondspectral band selection, obtain a second banded material data set of theplurality of spectral band sets in the material library; the simulatorcomponent is further operative to control the rendering engine to renderthe at least one asset according to the 3D mesh and the second bandedmaterial data set of the plurality of spectral band sets; and the bandrecovery operation is further operative to convert a result of renderingthe at least one asset according to the 3D mesh and the second bandedmaterial data into a second spectrum result.
 5. The system of claim 4wherein the simulator component is further operative to combine thefirst spectrum result and the second spectrum result into a combinedspectrum result.
 6. The system of claim 5 wherein the simulatorcomponent is further operative to: receive a spectrum selection; andallocate the spectrum selection among the plurality of spectral bandsets.
 7. The system of claim 1 wherein the rendering engine receives thefirst banded material data set through a color channel of the renderingengine.
 8. The system in claim 7, wherein the band recovery operationreceives the result of rendering the at least one asset according to the3D mesh and the first banded material data from the color channel of therendering engine.
 9. A method of multi-spectral rendering, the methodcomprising: receiving a selection of at least one asset for asimulation, wherein the at least one asset is stored in a storage mediumand managed separately from banded material data; receiving a spectrumselection for the simulation; receiving a three-dimensional (3D) meshand a material pointer for the at least one asset; identifying a firstspectral band selection within the spectrum selection for thesimulation; based at least on the material pointer and the firstspectral band selection, receiving a first banded material data set fromamong a plurality of spectral band sets, wherein the plurality ofspectral band sets comprises the first banded material data set and asecond banded material data set; rendering the at least one assetaccording to the 3D mesh and the first banded material data set;converting a result of rendering the at least one asset according to the3D mesh and the first banded material data set into a first spectrumresult; generating, by an asset management component, a new materialpointer; adding the new material pointer to a set of material pointersin an asset library; and updating the at least one asset with the newmaterial pointer from the set of material pointers, wherein the newmaterial pointer points to a portion of the spectral band information.10. The method of claim 9 wherein the first banded material data setcomprises a set of spectral bands selected from a set consisting of:infrared (IR), ultraviolet (UV), radio frequency (RF), microwave (MW),and a first set of visible light spectral bands.
 11. The method of claim10 wherein the first set of visible light spectral bands comprises red,green, and blue colors of visible light.
 12. The method of claim 9further comprising: identifying a second spectral band selection withinthe spectrum selection for the simulation; allocating the spectrumselection among the plurality of unique sets of spectral bands withinthe spectrum selection, the plurality of unique sets of spectral bandsincluding a first spectral band set and a second spectral band set,wherein the first spectral band selection corresponds to the firstspectral band set and the second spectral band selection corresponds thesecond spectral band set; based at least on the material pointer and thesecond spectral band selection, receiving the second banded materialdata set; rendering the at least one asset according to the 3D mesh andthe second banded material data set; and converting a result ofrendering the at least one asset according to the 3D mesh and the secondbanded material data set into a second spectrum result.
 13. The methodof claim 12 further comprising: combining the first spectrum result andthe second spectrum result into a combined spectrum result.
 14. Themethod of claim 13 wherein the second banded material data set comprisesa set of spectral bands selected from a set consisting of: infrared(IR), ultraviolet (UV), radio frequency (RF), microwave (MW), and asecond set of visible light spectral bands.
 15. The method of claim 9further comprising: receiving the first banded material data set througha color channel; and receiving the result of rendering the at least oneasset according to the 3D mesh and the first banded material data setthrough the color channel.
 16. A system for multi-spectral rendering,the system comprising: a material library including banded material datacomprising, for at least one material, spectral band information for aplurality of spectral band sets; an asset library including a set ofassets, for each asset in the set of assets comprising a 3D mesh from aset of 3D meshes and a material pointer associated with the 3D mesh froma set of material pointers and pointing to at least one banded materialdata set in the plurality of spectral band sets in the material library,wherein the set of assets in the asset library is stored in a storagemedium and managed separately from the banded material data in thematerial library; a simulator component operative to: select a firstasset, the first asset comprising a first 3D mesh and a first materialpointer, from the set of assets in the asset library, wherein at leastthe first material pointer points to a first banded material data set inthe plurality of spectral band sets; and an asset management componentoperative to generate a new material pointer, add the new materialpointer to a set of material pointers in the asset library, and updatethe first asset with the new material pointer from the set of materialpointers, wherein the new material pointer points to a portion of thespectral band information.
 17. The system in claim 16, furthercomprising: an asset management component operative to update the firstasset with a second material pointer from the set of material pointers,a second material pointer pointing to a second banded material data setin the plurality of spectral band sets, wherein the second bandedmaterial data set is different than the first banded material data set.18. The system of claim 16, wherein the sets of banded material datafurther comprise: a unique identification (ID) for each set of the setof banded material data sets.
 19. The system of claim 16, wherein thespectral band information is represented as a spectral graph having amagnitude axis and a frequency axis.
 20. The system of claim 16, furthercomprising: a scanner arrangement operative to: receive a sample of theat least one material; receive a spectral band specification forscanning the sample of the at least one material; scan the sampleaccording to the spectral band specification to produce material scandata; and generate an entry into the material library, wherein thematerial scan data forms at least a portion of the spectral bandinformation for the at least one material.